home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1987-12-04 | 35.3 KB | 1,041 lines
-- background: 2593 from stack: in -- bmap block id: 2880 -- flags: 0000 -- background id: 0 -- name: ----- HyperTalk script ----- ---------------------- Open Stack‚Ñ¢ Copyright 1987 ---------------------- ---------------------- by the Walking Shadow Press --------------------- on openCard global bookNumber,fieldList, autoNumbering,tentativeBook put the short date into field "today's Date" -- update date -------------------------------------------------------------------- -- The handler buttonSetOrReset sets or resets (highlights or -- -- unhighlights) the background buttons "Returned" and "Reserved".-- -- Otherwise, they would have the same highlight status on -- -- all cards. -- -------------------------------------------------------------------- buttonSetOrReset --------------------------------------------------------------------- -- The script of a newly opened card will be empty only when a new -- -- set of cards are in the process of being created. In that case,-- -- autonumber should never be performed. -- --------------------------------------------------------------------- if (script of this card is not empty) and (autoNumbering is true) then ----------------------------------------------------------------- -- If the "Book Number" field is empty and autoNumbering is -- -- true, then the global variable bookNumber is tentatively -- -- displayed in the "Book Number" field. The global variable -- -- tentativeBook is set to true while the tentative book -- -- number is displayed. -- ----------------------------------------------------------------- if field "Book Number" is empty then put bookNumber into field "Book Number" put true into tentativeBook end if end if tabkey end openCard on buttonSetOrReset ---------------------------------------------------------------- -- This subroutine, called by openCard, will highlight or -- -- unhighlight the two buttons "Returned" and "Reserved" -- -- according to whether the two background fields of the -- -- same name are empty or contain 1, respectively. -- -- This enables the background buttons to act as if -- -- they are card specific (card buttons). -- ---------------------------------------------------------------- if field "reserved" is 1 then set the hilite of background button "Reserved" to true else set the hilite of background button "Reserved" to false end if if field "returned" is 1 then set the hilite of background button "Returned" to true else set the hilite of background button "Returned" to false end if end buttonSetOrReset on closeCard global bookNumber,fieldList,tentativeBook ----------------------------------------------------------------- -- The fieldSetOrReset routine acts as the complement of -- -- buttonSetOrReset. According to whether the buttons -- -- "Returned" or "Reserved" are highlighted or not, the -- -- two background fields of the same name are either loaded -- -- with empty (unhighlighted) or 1 (highlighted) to save -- -- the final button highlight values. -- -- For more, see the comments in the fieldSetOrReset routine -- ----------------------------------------------------------------- fieldSetOrReset -------------------------------------------------------------------- -- If fieldList is not empty, then it means the user has entered -- -- some information into at least one field. -- -------------------------------------------------------------------- if fieldList is not empty then set cursor to 4 ---------------------------------------------------------------- -- If tentativeBook is true, the the tentative book number -- -- should now be made solid, that is, the book number field -- -- should be replicated, the tentativeBook global should -- -- be set to false, and the bookNumber global should be -- -- incremented. -- ---------------------------------------------------------------- if tentativeBook is true then put quote&"Book Number""e&"," after fieldList add 1 to bookNumber put false into tentativeBook end if ---------------------------------------------------------------- -- The following code will replicate the fields that appear -- -- in the global fieldList throughout the other three -- -- main stacks of the library system. -- -- fildList is created by each field upon the closeField -- -- message. Each changed field's name is appended onto -- -- fieldList separated by commas from all the rest. -- ---------------------------------------------------------------- -- Begin by stripping off the trailing coma from fieldList: put char 1 to (length(fieldList) - 1) of fieldList into fieldList put fieldList into tempFieldList put 0 into index put name of target into targName -- name of originating card repeat until tempFieldList is empty add 1 to index put item 1 of tempFieldList into fldTemp ------------------------------------------------------------- -- The next field to process will alway be item 1 of the -- -- tempFieldList list. This results from the fact that -- -- they're deleted off the list as they are processed, -- -- replicated, that is. item 1 of tempField (the next -- -- field to replicate) was just put into fldTemp. -- -- Next, we synthsize a line of HyerTalk that puts -- -- the value of the field into a local variable, the -- -- variable var(index), where index is the incrementing -- -- index. This will let us go to another stack while -- -- preserving the field values for easy access in this -- -- script. -- ------------------------------------------------------------- put "put field "&fldTemp&" of "&targName& " into var"&index into cmdLine do cmdLine -- Execute (Ok, interprete) the command just made. --------------------------------------------------------------- -- If someone can think of a better way to do the above, let -- -- me know, please. -- --------------------------------------------------------------- -- Next, empty the name of the field just processed. -- --------------------------------------------------------------- put empty into item 1 of tempFieldList put empty into char 1 of tempFieldList -- rid leading comma. end repeat ----------------------------------------------------------------- -- Now that we have the set of local variables (vari, where i -- -- ranges from 1 to index), we go to the other stacks and -- -- put their values into the proper fields... -- ----------------------------------------------------------------- set lockScreen to true set lockMessages to true push card --------------------- ACQUISITION SCREEN -------------------------- ------------------------------------------------------------------- -- The following code to replicate into the acquisition stack is -- -- similar to the code to replicate into the catalog and label -- -- setup stacks. Thus, they are not commented - these comments -- -- say it all... -- ------------------------------------------------------------------- -- Line 2 of the script of this card takes us to the -- -- card in the acquisition stack that corresponds to this one. -- ----------------------------------------------------------------- do line 2 of script of this card ------------------------------------------------------------------ -- Since we have to make sure that any field we attempt to put -- -- a value into actually exists in this stack (otherwise we'll -- -- get an error message), we must compile a list of the -- -- available fields of this stack... -- ------------------------------------------------------------------ put empty into targetFieldList repeat with indx = 1 to the number of fields put (word 3 of name of field indx) & "," after targetFieldList end repeat ------------------------------------------------------------------ -- Next, we do the actual replication. Provided the field in -- -- fieldList exists in this stack (is in the list compiled -- -- above: targetFieldList), the field's value, which is in -- -- the variable var(indx) is put into it. -- ------------------------------------------------------------------ repeat with indx = 1 to index put item indx of fieldList into tempItem if tempItem is in targetFieldList then put "put var"&indx&" into field "&tempItem into cmdLine do cmdLine -- Again, this is the only way I could figure to -- accomplish the "put". end if end repeat ---------------------- Catalog Screen ------------------------- do line 8 of script of this card put empty into targetFieldList repeat with indx = 1 to the number of fields put (word 3 of name of field indx) & "," after targetFieldList end repeat repeat with indx = 1 to index put item indx of fieldList into tempItem if tempItem is in targetFieldList then put "put var"&indx&" into field "&tempItem into cmdLine do cmdLine end if end repeat ---------------------- Label Screen ------------------------- do line 11 of script of this card put empty into targetFieldList repeat with indx = 1 to the number of fields put (word 3 of name of field indx) & "," after targetFieldList end repeat repeat with indx = 1 to index put item indx of fieldList into tempItem if tempItem is in targetFieldList then put "put var"&indx&" into field "&tempItem into cmdLine do cmdLine end if end repeat send innerReplication to this card ------------------------------------------------------------------ pop card set lockMessages to false set lockScreen to false end if --------------------------------------------------------------- -- If we have tentatively numbered this card, but the user -- -- hasn't changed anything, we want to leave the card alone -- -- and do nothing to global bookNumber. -- -- So, empty field "Book Number" of its tentative number -- -- and put false into tentativeBook because the card we -- -- are about to go to may have a solid number. -- --------------------------------------------------------------- if tentativeBook is true then put empty into field "Book Number" put false into tentativeBook end if --------------------------------------------------------------- -- Finally, we empty global fieldList because the fields -- -- have been replicated. -- --------------------------------------------------------------- put empty into fieldList end closeCard on fieldSetOrReset ------------------------------------------------------------------- -- This subroutine tests the buttons "Returned" and "Reserved" -- -- and set the fields of the same name to emtpy or 1 according -- -- to whether the buttons are highlighted (1) or unhighlighted -- -- (empty). This is part of a scheme to make the background -- -- buttons appear as if they are card buttons without having -- -- to create them on each card. -- ------------------------------------------------------------------- if the hilite of background button "Reserved" is true then put 1 into field "reserved" else put empty into field "reserved" end if if the hilite of background button "Returned" is true then put 1 into field "Returned" else put empty into field "Returned" end if end fieldSetOrReset on newField ---------------------------------------------------------------------- -- This handler guides the process of creating a new (background) -- -- field. In order for the field replication to work, the field -- -- must have a name. So, the field script that appends the -- -- field's name onto the global fieldList is not inserted into the -- -- script of an unnamed field. An answer box warns the user of -- -- this. -- ---------------------------------------------------------------------- global fieldScript put name of target into targName if word 1 of targName is "bkgnd" then ask "Name of field?" put it into tmpFldName if tmpFldName is empty then answer "Unnamed; field will not copy to other stacks" else set name of targName to tmpFldName set script of targName to fieldScript end if end if end newField on doMenu parm ----------------------------------------------------------------- -- Some of the menu selections have been redefined, and the -- -- Cut Card selection has been neutralized due to the fact -- -- it could cause extensive damage to the library database. -- ----------------------------------------------------------------- -- The following condition (name of this card is name of -- -- target) will be true only if the menu selection is made -- -- while in the current stack. This is needed becasue we -- -- want the redefined menu functions to work only when the -- -- menu selection is made from the current stack. Otherwise -- -- we need the HyperCard menu interpretation. See the final -- -- "else", which passes the doMenu message to HyperCard. -- ----------------------------------------------------------------- if name of this card is name of target then if parm is "New Card" then ------------------------------------------------------------ -- The "New Card" selections is redefined and controlled -- -- by the stack script handler mkNewCard. -- ------------------------------------------------------------ mkNewCard else if parm is "Delete Card" then -------------------------------------------------------- -- The "Delete Card" selection is controlled by the -- -- stack script handler delCard. -- -------------------------------------------------------- delCard else ------------------------------------------------------- -- New fields will always be background fields... -- ------------------------------------------------------- if parm is "New Field" then set editBkgnd to true pass doMenu -- let HyperCard make the field. else -------------------------------------------------------- -- If the "Open Stack..." selection is made, the user -- -- may be trying to escape from the program before -- -- the global variables have been saved on the control-- -- card, and we can't let that happen. -- -- So, we automatically call the quit handler, which -- -- saves the globals. -- -------------------------------------------------------- if parm is "Open Stack..." then set cursor to 4 quit pass doMenu -- Now let the user do what she or he wants. else if parm is "Cut Card" then -------------------------------------------------------- -- "Cut Card" is presently deactivated, it could mess -- -- the database up by cutting a card out of one stack -- -- and not all the others. -- -------------------------------------------------------- -- (cut card conditional) else if parm is "Paste Card" then -- else ----------------------------------------------------- -- If the user selects some other menu selection, -- -- let HyperCard take care of it... -- ----------------------------------------------------- pass doMenu end if end if end if end if end if end if else --------------------------------------------------------------- -- If the selection was originally made outside this stack, -- -- then do the HyperCard selection. -- --------------------------------------------------------------- pass doMenu end if end doMenu on processField param ------------------------------------------------------------------ -- This is a utility-like handler that deletes empty lines and -- -- white-space out of the field given in param. -- ------------------------------------------------------------------ repeat with i = the number of lines in field param down to 1 if word 1 of line i of field param is empty then delete line i of field param end if end repeat end processField function scrollLine return (((item 2 of the clickLoc - item 2 of the rect of the target) div the textHeight of the target) + 1 + trunc(scroll of the target/ the textHeight of the target)) end scrollLine --------------------- End Open Stack scripts -------------------------- -- part 3 (field) -- low flags: 00 -- high flags: 4007 -- rect: left=96 top=138 right=277 bottom=401 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 10 -- style flags: 256 -- line height: 13 -- part name: Circ Field ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 1 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=124 top=40 right=104 bottom=176 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 2 -- text size: 12 -- style flags: 256 -- line height: 16 -- part name: Call number ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 2 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=176 top=40 right=72 bottom=364 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 2 -- text size: 12 -- style flags: 256 -- line height: 16 -- part name: Author ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 5 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=386 top=305 right=327 bottom=509 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Catalog Screen ----- HyperTalk script ----- on mouseUp goCat end mouseUp -- part 6 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=260 top=304 right=327 bottom=385 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Acquisition Screen ----- HyperTalk script ----- on mouseUp goAcq end mouseUp -- part 7 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=104 top=306 right=327 bottom=203 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Overdue Card ----- HyperTalk script ----- on mouseUp set lockScreen to true processField "Circ Field" put last line of field "Circ Field" into lastLine put word 3 of lastLine into patronNumber put patronNumber into field "Patron Number" go to stack "Overdue" find patronNumber in field "Patron Number" set lockScreen to false end mouseUp -- part 8 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=5 top=306 right=327 bottom=102 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Patron Card ----- HyperTalk script ----- on mouseUp set lockScreen to true processField "Circ Field" put last line of field "Circ Field" into lastLine put word 3 of lastLine into patronNumber put patronNumber into field "Patron Number" go to stack "Patron" find patronNumber in field "Patron Number" set lockScreen to false end mouseUp -- part 9 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=176 top=71 right=119 bottom=365 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 2 -- text size: 12 -- style flags: 256 -- line height: 16 -- part name: title ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 13 (button) -- low flags: 00 -- high flags: 0000 -- rect: left=233 top=304 right=327 bottom=258 -- title width / last selected line: 0 -- icon id / first selected line: 27009 / 27009 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Next ----- HyperTalk script ----- on mouseUp go to next card end mouseUp -- part 14 (button) -- low flags: 00 -- high flags: 0000 -- rect: left=205 top=304 right=327 bottom=231 -- title width / last selected line: 0 -- icon id / first selected line: 9301 / 9301 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Prev ----- HyperTalk script ----- on mouseUp go to prev card end mouseUp -- part 15 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=124 top=103 right=119 bottom=176 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 2 -- text size: 12 -- style flags: 256 -- line height: 16 -- part name: Book Number ----- HyperTalk script ----- on closeField global fieldList,bookNumber,tentativeBook if tentativeBook is true then put field "Book Number" into bookNumber else put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end if end closeField -- part 21 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=24 top=196 right=220 bottom=89 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Sort ----- HyperTalk script ----- on mouseUp ask "Sort on which field?" with "Book Number" put it into fld if it is not empty then answer "Sort fields" with "Descending" or "Ascending" if it is "Ascending" then sort ascending by field fld else sort descending by field fld end if end if end mouseUp -- part 27 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=9 top=170 right=191 bottom=103 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Check Out ----- HyperTalk script ----- ----------------------- Open Stack‚Ñ¢ Copyright 1987 --------------------- ----------------------- by the Walking Shadow Press -------------------- on mouseUp -------------------------------------------------------------- -- If the book has not been returned yet, it cannot be -- -- checked out... -- -------------------------------------------------------------- if the hilite of background button "Returned" is false then answer "This Book has not been returned." exit mouseUp end if ------------------------------------------------- -- Otherwise, the book is to be checked out. -- ------------------------------------------------- processField "Reserve Field" -- Tidy up the reserve field. ----------------------------------------------------------------- -- The due date is calculated by converting today's date to -- -- seconds and adding the appropriate number of seconds to -- -- give the future due date... -- ----------------------------------------------------------------- put the short date into todayDate put todayDate into dueDate convert dueDate to seconds add ((field "Check Out") * 24 * 60 * 60) to dueDate convert dueDate to short date -------------------------------------------------------------------- -- If the reserved button is not on, the book will be manually -- -- checked out to a patron. If it is on, and the reserve field -- -- isn't empty, the book is automatically checked out to the -- -- next patron on the reserve list. -- -- Also, if there are no more patron numbers in the reserve -- -- list, the reserve button is unhighlighted. -- -- -------------------------------------------------------------------- put empty into patronNumber if (the hilite of background button "reserved") is not true then ask "to patron number?" put It into patronNumber if patronNumber is empty then exit mouseUp else type " " & todayDate & " " & dueDate&" "&patronNumber end if else -- The reserved condition is true... if (field "reserve field" is not empty) then put " " & todayDate & " " & dueDate&" " & first line of field "reserve field" after field "Circ Field" delete first line of field "reserve field" else set the hilite of background button "reserved" to false end if ------------------------------------------------------------------ -- The last patron number on the reserve list might have just -- -- been deleted. If so, unhighlight the reserve button. -- ------------------------------------------------------------------ if field "reserve field" is empty then set the hilite of background button "reserved" to false end if end if --------------------------------------------------------------- -- The book has just been checked out, so unhightlight the -- -- returned button. -- --------------------------------------------------------------- set the hilite of background button "returned" to false end mouseUp -- part 45 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=424 top=235 right=250 bottom=469 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 20 -- text size: 12 -- style flags: 256 -- line height: 16 -- part name: Check Out ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 46 (field) -- low flags: 00 -- high flags: 0007 -- rect: left=378 top=117 right=213 bottom=496 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Reserve Field ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 48 (field) -- low flags: 01 -- high flags: 0002 -- rect: left=12 top=109 right=125 bottom=101 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Today's Date -- part 50 (field) -- low flags: 80 -- high flags: 0000 -- rect: left=377 top=51 right=77 bottom=474 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Returned -- part 51 (field) -- low flags: 80 -- high flags: 0000 -- rect: left=379 top=86 right=111 bottom=477 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Reserved -- part 52 (button) -- low flags: 00 -- high flags: A005 -- rect: left=385 top=54 right=75 bottom=480 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Reserved ----- HyperTalk script ----- on mouseUp ------------------------------------------------------------- -- If this button is checked (highlighted), then ask for -- -- a patron number to reserve the book for. If the -- -- supplied patron number is not empty, append it to the -- -- reserve list. -- ------------------------------------------------------------- if hilite of me is true then ask "For which patron (number)?" put it into patronNumber processField "Reserve Field" if patronNumber is not empty then put return&patronNumber after field "Reserve Field" end if end mouseUp -- part 53 (button) -- low flags: 00 -- high flags: A005 -- rect: left=385 top=27 right=51 bottom=480 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Returned ----- HyperTalk script ----- on mouseUp ------------------------------------------------------------------ -- If a book has been returned and is on reserve, a reserve -- -- notice is generated for it. -- ------------------------------------------------------------------ if hilite of me is true then --------------------------------------------------------------- -- First tidy up the reserve field, and if it's not empty, -- -- and the reserve button is on, generate a notice. -- --------------------------------------------------------------- processField "Reserve Field" if (field "Reserve Field" is not empty) and (the hilite of background button "Reserved" is true) then put "Generating reserve notice." into msg ---------------------------------------------------------------- -- Gather some info. on the circulation card for the notice. -- ---------------------------------------------------------------- put first line of field "Reserve Field" into patronNumber put field "Book Number" into bookNum put field "Title" into title put the date into todayDate put todayDate into holdDate -------------------------------------------------------------- -- If nothing has been entered into the "Holding Period" -- -- field, ask for something. If still nothing is entered, -- -- leave holdDate as todayDate. -- -------------------------------------------------------------- if field "Holding Period" is empty then ask "Enter the reserve holding period." if it is not empty then put it into field "Holding Period" convert holdDate to seconds add 60*60*24*field "Holding Period" to holdDate convert holdDate to short date end if end if ------------------------------------------------------------- -- Next we go to the "Patron" stack to gather more info. -- -- on the patron. -- ------------------------------------------------------------- set lockScreen to true push card go to stack "Patron" find patronNumber in field "Patron Number" ------------------------------------------------------------- -- if patronNumber is field "Patron Number" then put field "Patron Name" into patronName put field "Patron Address" into patronAddress go to stack "Reserve Note" doMenu "New Card" put patronName into field "Patron Name 1" put patronAddress into field "Patron Address" put todayDate into field "today's date" put patronName into field "Patron Name 2" put title into field "Title" put holdDate into field "Hold Date" put bookNum into field "Book Number" put patronNumber into field "Patron Number" else -- Error , Patron does not exist. answer "The top patron number does not exist." end if pop card set lockScreen to false hide msg end if end if end mouseUp -- part 54 (field) -- low flags: 80 -- high flags: 0000 -- rect: left=156 top=120 right=205 bottom=356 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Patron Number ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 55 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=35 top=225 right=246 bottom=76 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Help! ----- HyperTalk script ----- on mouseUp go to stack "Circulation Help" end mouseUp -- part 56 (field) -- low flags: 00 -- high flags: 0002 -- rect: left=386 top=85 right=103 bottom=439 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 0 -- font id: 3 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Holding Period ----- HyperTalk script ----- on closeField global fieldList put word 3 of name of me into tempName if not(fieldList contains tempName) then put (word 3 of name of me) & "," after fieldList end if end closeField -- part 59 (button) -- low flags: 00 -- high flags: 8003 -- rect: left=196 top=327 right=342 bottom=276 -- title width / last selected line: 0 -- icon id / first selected line: 0 / 0 -- text alignment: 1 -- font id: 0 -- text size: 12 -- style flags: 0 -- line height: 16 -- part name: Control ----- HyperTalk script ----- on mouseUp go to stack "Control" end mouseUp